﻿// 声明desktop空间,封装相关操作
desktop = {
	apply : function(a, b) {
		for ( var c in b) {
			a[c] = b[c];
		}
		return a;
	},
	winWH : function() {
		$('body').data('winWh', {
			'w' : $(window).width(),
			'h' : $(window).height()
		});
	},
	init : function(dockitem, shortcut) {
		this.winWH();
//		this.apply(desktop.dockbar, {
//			element : $('#dock_bar'),
//			deafaultApp : $('#default_app'),
//			startBlock : $('#start_block'),
//			startBtn : $('#start_btn'),
//			startItem : $('#start_item'),
//			defaultTools : $('#default_tools')
//		});
		this.apply(desktop.taskbar, {
			element : $('#task_bar'),
			tasklb : $('#task_lb')
		});
		this.apply(desktop.container, {
			element : $('#desktop_container'),
			inner : $('#desktop_container_inner')
		});
		desktop.container.init(5, 1);
		desktop.navbar.init(5);

		$('body').data('panel', {
			'wallpaper' : $('#wallpapers'),
			'powered_by' : $('a.powered_by')
		});

		// 初始化侧边栏
		//desktop.dockbar.init(dockitem);

		// 初始化任务栏
		desktop.taskbar.init();

		// 初始化桌面图标
		desktop.shortcut.init(shortcut);
		desktop.shortcut.initCounter();

		// 初始化桌面导航栏
		//desktop.navbar.init();

		// desktop.clock.init();

		desktop.container.element.fadeIn(600);

		
	},
	iconDataInit : function(data) {
		$(data).each(function(index, item) {
			$("#id_" + item.id).data("iconData", item);
		});
	},
	getMydata : function() {
		return $('body').data();
	},
	mouseXY : function() {
		var mouseXY = [];
		$(document).bind('mousemove', function(e) {
			mouseXY[0] = e.pageX;
			mouseXY[1] = e.pageY;
		});
		return mouseXY;
	},
	contextMenu : function(jqElem, data, menuName, textLimit) {
		var _this = this, mXY = _this.mouseXY();
		jqElem.smartMenu(data, {
			name : menuName,
			textLimit : textLimit,
			afterShow : function() {
				var menu = $("#smartMenu_" + menuName);
				var myData = desktop.getMydata(), wh = myData.winWh; // 获取当前document宽高
				var menuXY = menu.offset(), menuH = menu.height(), menuW = menu.width();
				if (menuXY.top > wh['h'] - menuH) {
					menu.css('top', mXY[1] - menuH - 2);
				}
				if (menuXY.left > wh['w'] - menuW) {
					menu.css('left', mXY[0] - menuW - 2);
				}
			}
		});
		$(document.body).click(function(event) {
			event.preventDefault();
			$.smartMenu.hide();
		});
	}
};

// navbar

